<?php

class JOIN {
	public static $INNER_JOIN = 11;
	public static $OUTER_JOIN = 12;
	public static $CROSS_JOIN = 13;
	public static $LEFT_JOIN = 14;
	public static $RIGHT_JOIN = 15;
	public static $FULL_JOIN = 16;
	
	private $type = 0;
	private $table = '';
	private $column1 = '';
	private $column2 = '';
	private $operator = '';
	
	/**
	 * Instancia a classe JOIN que possui os metodos necessários
	 * para a crição da clausula de junção de duas tabelas existentes
	 * no banco de dados.
	 * 
	 * @param Integer $type
	 * @param String $table
	 * @param String $column1
	 * @param Integer $operator
	 * @param String $column2
	 */
	public function __construct($type, $table, $column1, $operator, $column2) {
		$this->type = $type;
		$this->table = $table;
		$this->column1 = $column1;
		$this->operator = $operator;
		$this->column2 = $column2;
	}
	
	/**
	 * Retorna o tipo da junção de dados
	 * 
	 * @return Integer
	 */
	public function getType() {
		return $this->type;
	}

	/**
	 * Retorna o nome da tabela a ser realizado o
	 * 
	 * @return String
	 */
	public function getTable() {
		return $this->table;
	}

	/**
	 * Retorna o nome da primeira coluna da tabela a ser comparada
	 * 
	 * @return String
	 */
	public function getColumn1() {
		return $this->column1;
	}

	/**
	 * Retorna o nome da segundaa coluna da tabela a ser comparada
	 * 
	 * @return String
	 */
	public function getColumn2() {
		return $this->column2;
	}

	/**
	 * Retorna o tipo de operação a ser realizada na expressão
	 * da junção dos dados
	 * 
	 * @return Integer
	 */
	public function getOperator() {
		return $this->operator;
	}

	/**
	 * Setar o tipo de junção a ser realizada na consulta
	 * 
	 * @param Integer $type
	 * Tipo da operação 
	 */
	public function setType($type) {
		$this->type = $type;
	}

	/**
	 * Setar o nome da tabela para a realização da junção
	 * 
	 * @param String $table
	 * Nome da tabela
	 */
	public function setTable($table) {
		$this->table = $table;
	}

	/**
	 * Seta o nome da coluna da primeira tabela
	 * da junção
	 * 
	 * @param String $column1
	 */
	public function setColumn1($column1) {
		$this->column1 = $column1;
	}

	/**
	 * Seta o nome da coluna da segunda tabela
	 * da junção
	 * 
	 * @param String $column2
	 */
	public function setColumn2($column2) {
		$this->column2 = $column2;
	}

	/**
	 * Seta o tipo da comparação a ser realizada
	 * entre as colunas para a realização da junção 
	 * 
	 * @param Integer $operator
	 */
	public function setOperator($operator) {
		$this->operator = $operator;
	}
}
?>